package com.brainhealth.common.enums;

import java.util.ArrayList;
import java.util.List;

/**
 * 年龄段枚举
 * @author wll
 */
public enum AgeGroupEnum {
    ALL(-1,0,Integer.MAX_VALUE),
    LESS_THEN_45(1,0,44),
    BETWEEN_45_54(2,45,54),
    BETWEEN_55_64(3,55,64),
    BETWEEN_65_74(4,65,74),
    GREATER_THEN_75(5,75,Integer.MAX_VALUE);

    private final int code;
    private final int minAge;
    private final int maxAge;

    AgeGroupEnum(int code, int minAge, int maxAge) {
        this.code = code;
        this.minAge = minAge;
        this.maxAge = maxAge;
    }

    public int getCode() {
        return code;
    }

    public int getMinAge() {
        return minAge;
    }

    public int getMaxAge() {
        return maxAge;
    }

    /**
     * 获取年龄编码列表
     *
     * @return
     */
    public static List<Integer> getAgeGroupCodeList() {
        List<Integer> list = new ArrayList<>(3);
        for (AgeGroupEnum ageGroupEnum : AgeGroupEnum.values()) {
            list.add(ageGroupEnum.code);
        }
        return list;
    }

    /**
     * 根据编码获取年龄组
     * @param code
     * @return
     */
    public static AgeGroupEnum getAgeGroupByCode(int code) {
        for (AgeGroupEnum ageGroupEnum : AgeGroupEnum.values()) {
            if (code == ageGroupEnum.code) {
                return ageGroupEnum;
            }
        }
        return null;
    }
}
